package com.zjl.Kafka.第03章_操作kafka;

import org.apache.kafka.clients.admin.*;

import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

/**
 * 在 Zookeeper 中
 *      /admin/delete_topics 有个删除主题列表
 *      /brokers/topics/XX  就是存在的主题的列表
 *
 * ************************************************************************
 * 删除策略
 * # 日志一旦超过了设置的 时间/空间，Kafka 中提供了两种日志清理策略 delete 和 compact
 * # delete 将过期数据删除   默认
 * # compact 将过期数据压缩  压缩可不是指 压缩文件，而是 基本思路就是将相同key的数据，只保留最后一个  会丢失数据
 * log.cleanup.policy=delete
 *
 * #日志（数据）超过 指定分钟
 * #log.retention.minutes=168
 * #log.retention.ms=168
 * log.retention.hours=168
 *
 * #  日志一旦超过了设置的 空间  会执行 日志清除策略
 * #log.retention.bytes=1073741824
 */
public class D4_数据主题删除 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Map<String,Object> confMap = new HashMap<>();
        confMap.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,"82.157.71.243:9091,82.157.71.243:9092,82.157.71.243:9093");
        confMap.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,"82.157.71.243:9092");

//        Admin admin = Admin.create(confMap);//管理员对象
        AdminClient admin = AdminClient.create(confMap);//管理员对象

        List<String> del = new ArrayList<>();
        del.add("test1");
        del.add("test2");

        //创建主题
        DeleteTopicsResult deleteTopicsResult = admin.deleteTopics(del);//删除指定主题
        System.out.println(deleteTopicsResult.all().get());//保证删除后才往下进行

        admin.close();//关闭管理者

    }
}
